Sharing of access to physical disk storage and virtualization of input/output (I/O) address space among client nodes within grids or clusters are commonly managed by distributed logical volume managers or inline appliances. These distributed logical volume managers and inline appliances provide a centralized logical view of the physical disk address space that is shared within shared access volumes by these client nodes.
Quality of service (QoS) management functions for these shared access volumes for monitoring QoS metrics associated with the volumes, such as I/O performance, cost, and security, have traditionally been performed in a centralized fashion by either distributed logical volume managers or inline appliances. With the distribution of disk access capabilities associated with shared access volumes to client nodes within the grids or clusters of computing nodes, QoS monitoring by a central node can cause performance problems.
Service level agreements (SLAs) are arrangements related to I/O operations for shared access volumes and are based upon one or more QoS parameters, each defining operational boundaries for I/O operations on the shared access volumes. In conventional systems, QoS monitoring related to SLA agreements is centralized, which can cause performance problems with distributed access to shared storage by large numbers of nodes.
Data management services related to fulfillment of these SLAs, such as migration of data between back-end storage devices, have also traditionally been centralized. Data I/O rates may differ between client nodes depending upon the application running on each of the different client nodes within a grid or cluster. Because physical disks accessed by grids or clusters of nodes may have different I/O parameters and different performance levels, data migration may be used to move data that is found to be accessed more frequently from lower performing disks to higher performing disks. Additionally, infrequently used data may be migrated to lower cost or lower performance storage to allow higher performance storage to be available for data that is accessed more frequently. Accordingly, data management functionality may be used to refine system performance over time. Unfortunately, with the distribution of disk access capabilities associated with shared access volumes to client nodes within the grids or clusters, centralized control of data management can result in performance problems.
Accordingly, in light of these difficulties associated with conventional centralized QoS management, there exists a need for methods, systems, and computer program products for managing quality-of-service associated with storage shared by computing grids and clusters with a plurality of nodes.